导航菜单
首页 >  极狐GitLab Runner Kubernetesk8s配置  > 在容器中运行极狐GitLab Runner

在容器中运行极狐GitLab Runner

Docker 引擎版本兼容性 一般极狐GitLab Runner Docker 镜像使用 安装 Docker 镜像并启动容器 选项一:使用本地系统卷挂载,启动 Runner 容器 选项二:使用 Docker 卷启动 Runner 容器 注册 Runner升级配置 升级版本 读取极狐GitLab Runner 日志 安装受信任的 SSL 服务器证书 Docker 镜像 创建极狐GitLab Runner Docker 镜像SELinux 极狐GitLab Runner 容器镜像支持生命周期 容器镜像和发布日期结束 在容器中运行极狐GitLab Runner

下面将向您介绍如何在 Docker 容器中运行极狐GitLab Runner。

Docker 引擎版本兼容性

一般来说,Docker Engine 的版本和极狐GitLab Runner 容器镜像的版本不需要匹配。极狐GitLab Runner 镜像应该向后和向前兼容。然而,为确保您拥有最新的功能和安全更新,您应该使用最新的稳定 Docker 引擎版本。

一般极狐GitLab Runner Docker 镜像使用

极狐GitLab Runner Docker 镜像(基于 Ubuntu 或 Alpine Linux)被设计为标准 gitlab-runner 命令周围的包装器,就像极狐GitLab Runner 直接安装在主机上一样。

一般规则是每个极狐GitLab Runner 命令通常会被执行为:

gitlab-runner

可以使用以下命令执行:

docker run gitlab/gitlab-runner

例如,可以执行以下命令获取最高级别的极狐GitLab Runner 的帮助信息:

docker run --rm -t -i gitlab/gitlab-runner --helpNAME:gitlab-runner - a GitLab RunnerUSAGE:gitlab-runner [global options] command [command options] [arguments...]VERSION:15.11.0 (436955cb)(...)

简而言之,命令的 gitlab-runner 部分由docker run [docker options] gitlab/gitlab-runner 替代,剩余部分保持与注册文档中描述的内容相一致。唯一区别是 gitlab-runner 命令是在 Docker 容器中执行的。

安装 Docker 镜像并启动容器

开始之前,请确保已经安装 Docker。

如果想在 Docker 容器内运行 gitlab-runner,您需要确保重启容器时配置没有丢失。为此,以下描述两个选项:

请阅读 FAQ,它介绍了您在使用极狐GitLab Runner 时最可能遇到的问题。

如果使用 session_server,您也需要通过向 docker run 命令中添加 -p 8093:8093 暴露端口 8093。 如果您想通过 Docker Machine 执行器使用弹性伸缩功能,您还需要挂载 Docker Machine /root/.docker/machine 存储路径: 通过为系统卷挂载添加 -v /srv/gitlab-runner/docker-machine-config:/root/.docker/machine。 通过为 Docker 命名的卷添加 -v docker-machine-config:/root/.docker/machine。note 此设置将 Docker Daemon 的完全控制权委托给每个极狐GitLab Runner 容器。如果您在还运行其他负载的 Docker Daemon 中运行极狐GitLab Runner,隔离保证会失效。选项一:使用本地系统卷挂载,启动 Runner 容器

以下示例使用挂载到 gitlab-runner 容器的配置卷的本地系统。这个卷用于配置资源和其他资源。

docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest note 在 macOS 上,使用 /Users/Shared 而不是 /srv。选项二:使用 Docker 卷启动 Runner 容器

在这个例子中,您可以使用配置容器挂载您的自定义数据卷。

创建 Docker 卷:

docker volume create gitlab-runner-config

使用刚创建的卷启动极狐GitLab Runner 容器:

docker run -d --name gitlab-runner --restart always \-v /var/run/docker.sock:/var/run/docker.sock \-v gitlab-runner-config:/etc/gitlab-runner \gitlab/gitlab-runner:latestnote 如果您想设置容器的时区,请在 docker run 命令中使用 --env TZ= 标记。 note 对于符合 FIPS 的极狐GitLab Runner 镜像,您需要基于 redhat/ubi8 使用 gitlab/gitlab-runner:ubi-fips 标签。注册 Runner

最后一步是注册新的 Runner。极狐GitLab Runner 容器在注册之前不会处理任何作业。

升级配置

如果您更改了 config.toml 中的配置,您可能需要重启 Runner 使更改生效。请确保重启整个容器,而不是使用 gitlab-runner restart 命令:

docker restart gitlab-runner升级版本

拉取最新版本(或者特定标签):

docker pull gitlab/gitlab-runner:latest

停止并移除现存的容器:

docker stop gitlab-runner && docker rm gitlab-runner

像最开始那样启动容器:

docker run -d --name gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ gitlab/gitlab-runner:latest note 您挂载数据卷时使用的方法需要和您最开始使用的方法一致(-v /srv/gitlab-runner/config:/etc/gitlab-runner 或 --volumes-from gitlab-runner-config)。读取极狐GitLab Runner 日志

当极狐GitLab Runner 作为前台任务(不论是本地安装的二进制文件或 Docker 容器内部)被启动时,日志会被打印为标准输出。当极狐GitLab Runner 作为系统服务被启动时(例如,使用 Systemd),大多数情况下的日志都是通过 Syslog 或其他系统记录机制进行记录的。

极狐GitLab Runner 作为基于服务的 Docker 被启动,因为 gitlab-runner ... 命令是容器的主要进程,可以使用 docker logs 命令读取日志。

例如,如果使用以下命令启动极狐GitLab Runner:

docker run -d --name gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ gitlab/gitlab-runner:latest

您可以使用以下命令获取日志:

docker logs gitlab-runner

其中 gitlab-runner 是容器的名称,可以在第一个命令中输入 --name gitlab-runner 进行设置。

关于处理容器日志的

相关推荐: